import * as enums from 'enums'
import i18n from 'i18n'

const enumData = {}

const install = function(Vue) {
  const enumKeys = Object.keys(enums)
  enumKeys.forEach(key => {
    enumData[key] = enums[key]
  })
  Vue.prototype.$enumList = getList
  Vue.prototype.$enumId = getId
  Vue.prototype.$enumName = getName
  Vue.prototype.$enumValue = getValue
}

const getList = function(key) {
  const enumItem = enumData[key]
  const ids = Object.keys(enumItem)
  const arr = []
  for (const id of ids) {
    arr.push({
      id: enumItem[id].id,
      name: i18n.t(enumItem[id].name) //
    })
  }
  return arr
}

const getId = function(key, code) {
  const enumItem = enumData[key]
  for (const enumKey in enumItem) {
    if (enumKey === code) {
      return enumItem[enumKey].id
    }
  }
}

const getName = function(key, id) {
  const enumItem = enumData[key]
  for (const enumKey in enumItem) {
    if (enumItem[enumKey].id === id) {
      return i18n.t(enumItem[enumKey].name)
    }
  }
}

const getValue = function(key, id, field) {
  const enumItem = enumData[key]
  for (const enumKey in enumItem) {
    if (enumItem[enumKey].id === id) {
      return enumItem[enumKey][field]
    }
  }
}

export default {
  install
}
